package model

import scala.collection.mutable.ArrayBuffer

class GrupoDeDepartamentos extends OperadorDeRegistros{

  val departamentos: ArrayBuffer[Departamento]=new ArrayBuffer[Departamento]
  
  def agregarDepartamento(depto: Departamento)= departamentos.+=(depto)
  
  def esHomogeneo()=departamentos.nonEmpty && (departamentos.forall(depto => depto.provincia equals(departamentos.head provincia)))
  
  def incluyeA(prov: Provincia):Boolean= departamentos.forall(depto => prov.perteneceALaProvincia(depto))

  override def provincias()= departamentos.collect{case d => d.provincias}.toSet.toList.flatten
  
  override def registros()= departamentos.foldRight(new ArrayBuffer[Registro]){(depto,regs) => regs.++=(depto.registros)}.toList

  
}